<?php
include_once '../gerenciadores/AutoloadGerenciadores.php';

class RepositorioCurso{
	private static $instancia;

	private function __construct(){
	}
	
	public static function getInstancia(){
		if(!isset(self::$instancia)){
			$c = _CLASS_;
			self::$instancia = new $c;
		}
		return self::$instancia;
	}
	
	
	public static function getTabelaCurso(){
		__autoload("Conexao");
		$sql = "SELECT * FROM `tcursos`;";
		$tabela = Conexao::tabelaSql($sql);
		
		$i=0;
		foreach ($tabela as $linha){
			$curso[$i] = new Curso();
			$curso[$i]->setIdCurso($linha['idcurso']);
			$curso[$i]->setNomeCurso($linha['nomecurso']);
			$curso[$i]->setSiglaCurso($linha['siglacurso']);
			$i++;
		}
		
		return $curso;
		
	}
	
	public static function getCurso($idCurso){
		$sql = "SELECT * FROM `tcursos` WHERE idcurso='".$idCurso."'";
		__autoload("Conexao");
		$tabela = Conexao::tabelaSql($sql);
		
		__autoload("Curso");
		$curso = new Curso();
		try{
			foreach ($tabela as $linha){
				$curso->setIdCurso($idCurso);
				$curso->setNomeCurso($linha['nomecurso']);
				$curso->setSiglaCurso($linha['siglacurso']);
			}
		}catch (CursoCadastraException $e){
			echo $e->getMessage();
		}
		return $curso;
	}
	
	public static function adicionaCurso(Curso $curso){
		$sql = "INSERT INTO `tcursos`(`siglacurso`, `nomecurso`) VALUES(";
		$sql .= "'".$curso->getSiglaCurso()."',";
		$sql .= "'".$curso->getNomeCurso()."');";
		__autoload("Conexao");
		Conexao::executaSql($sql);
	}
	
	public static function deletaCurso(Curso $curso){
		$sql = "DELETE FROM tcursos WHERE NOT EXISTS(SELECT * FROM tturma WHERE tturma.idcurso = tcursos.idcurso)
				AND tcursos.idcurso = '".$curso->getIdCurso()."';";
		__autoload("Conexao");
		
		Conexao::executaSql($sql);
		
	}
	
	public static function atualizaCurso(Curso $curso){
		$sql = "UPDATE `tcursos` SET `siglacurso`='".$curso->getSiglaCurso()."',`nomecurso`='".$curso->getNomeCurso()."' WHERE `idcurso`='".$curso->getIdCurso()."';";
		__autoload("Conexao");
		Conexao::executaSql($sql);
		
	}
	
}

?>